در اوایل سال 2012 میلادی، نسخه اولیه کاتلین با مجوز آپاچی 2 به صورت متنباز ساخته شد. اولین نسخه رسمی کاتلین یعنی نگارش یک در تاریخ 16 فوریه منتشر شد. در سال 2017 میلادی گوگل در کنفرانس توسعهدهندگان اعلام کرد از این زبان رسمی پشتیبانی میکند و آنرا به عنوان زبان توسعه کاتلین در کنار زبان جاوا به رسمیت میشناسد. در سال 2019 میلادی گوگل اعلام کرد کاتلین را به عنوان زبان برنامهنویسی اصلی توسعه برنامههای اندرویدی به رسمیت میشناسد. رویکردی که به اعتقاد بسیاری از کارشناسان سرآغازی بر وابستگی مفرط به زبان جاوا توصیف میشود. یکی از مهمترین ویژگیهایی که باعث شده کاتلین با استقبال توسعهدهندگان روبرو شود به ویژگی قابلیت همکاری این زبان با جاوا باز میگردد. کامپایلرهای کاتلین میتوانند کدهای اجرایی برای زیرساختهای مختلف نظیر ماشین مجازی جاوا (JVM) سرنام Java Virtual Machine و زیرساختهای خاص بومی تولید کنند. اگر زیرساخت هدف شما JVM است، کامپایلر بایت کد مستقل از ماشین را تولید میکند که درون ماشین مجازی جاوا اجرا میشود، در حالی که زمانی که شما یک زیرساخت بومی را هدف قرار میدهید، کامپایلر یک فایل باینری اجرایی تولید میکند که تنها روی زیرساخت خاص تعیین شده اجرا میشود. رویکرد فوق مزایا و معایب خاص خود را دارد. JVM در محیط جاوا است و کامپایلرهای کاتلین به Java Class Libraries وابسته هستند که بخشی از کیت توسعه جاوا (JDK) سرنام Java Development است. تمامی این الزامات در توزیع Java SE قرار دارد. با این توصیف مشاهده میکنیم کامپایلرهای کاتلین میتوانند برنامههای کاربردی را برای ماشین مجازی جاوا (JVM) تولید کنند و علاوه بر این قابلیت ساخت کدهای محلی اجرایی برای یک زیرساخت بومی پشتیبانی شده از طریق ابزار کامپایلر LLVM را دارند. نکته مهمی که باید به آن دقت کنید این است که کاتلین میتواند در جاوااسکریپت کامپایل شده و در بحث برنامهنویسی فرانتاند برنامههای وب نیز استفاده شود.
آمارها نشان میدهند که بیشتر توسعهدهندگان حرفهای نرمافزار از کاتلین در تعامل با یک محیط توسعه یکپارچه کارآمد استفاده میکنند، هرچند این امکان فراهم است به شکل دستی یک برنامه کاتلین را با استفاده از یک کامپایلر خط فرمان ایجاد کرد. این ابزارهای توسعه برای ویندوز ، لینوکس، مک و FreeBSD در دسترس هستند. از زیرساختهای هدف پشتیبانی شده باید به ویندوز، لینوکس، اندروید، iOS، macOS، Windows ، Linux ، FreeBSD ، WebAssemble ، watchOS و tvOS اشاره کرد.
مقاله پیشنهادی: راهنمای شروع به کار با زبان برنامهنویسی Kotlin
محدوده
همانگونه که اشاره کردیم از کاتلین به عنوان یک زبان برنامهنویسی عمومی یاد میشود، زیرا کاتلین میتواند برای ساخت انواع مختلفی از برنامهها استفاده شود. شما میتوانید برنامههای دسکتاپی، برنامههای وب، برنامههای تلفن همراه و غیره را توسعه دهید. با توجه به اینکه گوگل در سال 2019 میلادی، کاتلین را برای ساخت برنامههای اندرویدی انتخاب کرد، بسیاری از توسعههای کاتلین و قابلیتهایی که به این زبان اضافه میشوند در جهت ساخت مطلوبتر برنامههای اندوریدی هستند. علاوه بر این، تعدادی کتابخانه کارآمدر در ارتباط با ساخت برنامههای یادگیری ماشین، برنامههای علم دادهها، REST APIs و غیره برای کاتلین ارائه شدهاند. یکی از مهمترین ویژگیهای زبان کاتلین این است که توسعهدهندگان میتوانند به سادهترین شکل ممکن با بانکهای اطلاعاتی نظیر MySQL، PostgreSQL، MongoDB و نمونههای مشابه کار کنند.
با توجه به اینکه در بیشتر موارد توسعه برنامههای اندرویدی میتواند شامل استفاده زیاد از SQLite باشد، توسعهدهندگان کاتلین مشکلی از برنامهنویسی در این زمینه ندارند. از آنجایی که کاتلین با جاوا در تعامل است، میتوان تمام کتابخانههای جاوا را به برنامههای کاربردی وارد کرد. بهطور معمول، این مدل توسعه نرمافزاری چند زبانه با استفاده از ابزارهای خودکارسازی ساخت نظیر گرادل (Gradle) انجام میشود.
شاید بد نباشد به این نکته اشاره کنیم که برخی از برنامههای اندرویدی مشهور نظیر پینتراست، اوبر، کورسا، اورنوت، کیکاستارتر و غیره با استفاده از کاتلین نوشته شدهاند.
برای یادگیری کاتلین چه پیشنیازیهایی لازم است؟
برای یادگیری کوتلین باید تجربه کار با کامپیوترهای شخصی یا لپتاپها را داشته باشید، دانش کافی در ارتباط با سیستمی که از آن استفاده میکنید، چگونگی نصب و حذف نرمافزارها داشته باشید از این نکته اطلاع داشته باشید که چگونه متغیرهای سیستمی را ویرایش کنید، بدون مشکل از خط فرمان، ترمینال، شل و غیره استفاده کنید و چگونگی اجرا فرمانها در خط فرمان و وارد شدن به پوشهها را بدانید. هیچ دانش قبلی در مورد برنامه نویسی مورد نیاز نیست. اگر تجربه قبلی در ارتباط با برنامهنویسی دارید، روند یادگیری کاتلین سریعتر میشود، به بیان دیگر، اگر یک برنامهنویس جاوا هستید در کمترین زمان ممکن امکان یادگیری مفاهیم کاتلین وجود دارد و علاوه بر این در صورت نیاز میتوانید کدهای جاوا را به کاتلین منتقل کنید.
نصب کامپایل خط فرمان کاتلین
کامپایلر نرمافزاری است که یک برنامه را به کدهای اجرایی کامپایل میکند. به بیان دقیقتر، دستوراتی که توسط برنامهنویس نوشته میشود را به کدهای قابل فهم برای کامپیوترها تبدیل میکند. کامپایلر کاتلین توسط JetBrains در گیتهاب نگهداری میشود. صرفنظر از سیستمعاملی که از آن استفاده میکنید، شما میتوانید به سایت https://github.com/JetBrains/kotlin/releases/ بروید و جدیدترین نسخه پایدار این کامپایلر kotlin-compiler-.zip را دانلود کنید. دقت کنید که نباید فایل koltin-native-windows-.zip را که نسخه بومی است که برای برنامههای هدفی که قرار است روی یک پلتفرم بومی و نه ماشین مجازی جاوا ساخته میشوند را دانلود کنید. در زمان نگارش این مقاله، جدیدترین نسمه kotlin-compiler-1.4.10 از آدرس https://github.com/JetBrains/kotlin/releases/tag/v1.4.10 برای دانلود بارگذاری شده است. هنگامی که فایل را دانلود کردید، آنرا از حالت فشرده خارج کنید. به پوشهای که فایل از حالت فشرده خارج شده در آن قرار دارد. اکنون به پوشه bin بروید. بهطور مثال، اگر فایل را در مسیر C:\Kotlin\kotlinc قرار دادهاید، مسیر فایل bin به صورت C:\Kotlin\kotlinc\bin میشود. این موضوع مهم است، زیرا پوشه bin شامل تمامی اسکریپتهایی است که برای کامپایل برنامههای کاتلین برای سیستمعاملهای مختلف در آن قرار دارد. روی سیستمهای مبتنی بر یونیکس، اگر فایل آرشیو را در مسیر /home//kotlinc باز کردهاید، پوشه bin مسیری به صورت /home//kotlinc/bin دارد.
نصب کامپایلر کاتلین روی ویندوز
زمانی که فایل دانلود شده از حالت آرشیو خارج شد، در مرحله بعد باید مسیر پوشهbin را در بخش متغیرهای محیطی (Environment Variable) و در متغیر Path وارد کنید. اینکار باعث میشود تا کامپایلر کاتلین از هر مکانی در ویندوز و از طریق خط فرمان فارغ از پوشهای که در آن قرار دارد در دسترس و قابل اجرا باشد. برای انجام اینکار System Properties را باز کنید، زبانه Advanced را کلیک کنید و سپس دکمه Environment Variables را کلیک کنید.
در پنجره ظاهر شده در بخش System Variables فیلد Path را انتخاب کرده و گزینه Edit را کلیک کنید.
در ادامه روی دکمه New کلیک کنید و مسیر کامپایلر کاتلین را وارد کنید و دکمه Ok را کلیک کنید.
تمامی پنجرههای باز مرتبط با ویژگیهای سیستمی را ببندید. پنجره خط فرمان را باز کنید و دستور زیر را درون آن وارد کنید.
Kotlinc -version
اکنون باید تصویری همانند شکل زیر را مشاهده کنید.
تنظیم کامپایلر کاتلین برای سیستمعاملهای مبتنی بر یونیکس
برای انجام اینکار باید مسیر پوشه bin و مکانی که فایل آرشیو کامپایلر در آن باز شده را به متغیر محیطی PATH اضافه کنید. روشهای مختلفی برای انجام اینکار وجود دارد. بهطور مثال، شما میتوانید از فرمان export درون Terminal/Shell به صورت زیر استفاده کنید:
$>export PATH= “${PATH}:/home/user123/compilers/kotlinc/bin
نکته: این روش باعث اضافه شدن موجودیت جدیدی به متغیر PATH میشود. با اینحال، مسیر مذکور به پوشه bin تنها در نشت فعلی در دسترس است و زمانیکه پنجره ترمینال را ببندید و دوباره باز کنید، موارد اضافه شده از میان میروند. شما میتوانید محتویات متغیر PATH را با استفاده از دستور echo به شرح زیر بررسی کنید:
$>echo $PATH
در بیشتر توزیعهای یونیکسی، شما میتوانید دستور export نشان داده شده در بالا را به انتهای فایل~/.bashrc اضافه کنید. این فایل یک شلاسکریپت است که هر زمان ترمینال راهاندازی میشود، اجرا میشود. در نتیجه با هر بار باز کردن یک ترمینال، دستور export اجرا میشود و بنابراین مقدار دلخواه متغیر PATH را خواهید داشت. پس از تنظیم موارد مذکور، دستور زیر را اجرا کنید:
$>kotlinc -version
اکنون باید خروجی مشابه تصویر زیر را مشاهده کنید.
اگر پیغام خطایی در ارتباط با فرمان فوق مشاهده میکنید، این پیغام به دو علت نشان داده میشود، آرشیو کامپایلر به درستی از حالت فشرده خارج نشده یا متغیر PATH به مسیر درست پوشه bin اشاره ندارد. از فرمان echo $PATH برای بررسی محتوای متغیر PATH و انجام عملیات موردنیاز استفاده کنید.
مقاله پیشنهادی: چرا سرمایهگذاری روی یادگیری کاتلین (Kotlin) انتخاب درستی است؟
ساخت برنامههای کاربردی با کاتلین
برنامههایی که با کاتلین می نویسید متکی به یک زیرساخت خاص نیستند و درون ماشین مجازی جاوا اجرا میشوند. قبل از آنکه یاد بگیریم چگونه برنامههای کاتلین را ایجاد کنیم اجازه دهید بهطور سریع بررسی کنیم که چگونه برنامههای عمومی ساخته میشوند. یک برنامه شامل مجموعه دستورالعملهای اجرایی قابل فهم برای کامپیوترها است. یک برنامه بومی شامل دستورالعملهایی است که توسط یک زیرساخت خاص قابل فهم است. یک برنامه یا گروهی از برنامهها به این دلیل نوشته میشوند تا کار خاصی را انجام دهند.
برنامه یا به عبارت دقیقتر کدهایی که توسط یک برنامهنویس نوشته میشود به کامپایلر داده میشود تا آنها را به کدهای دودویی قابل اجرا تبدیل کند. این مفهوم در قالب چیزی که به عنوان برنامه کاربردی از آن یاد میکنیم تعریف میشود. نمودار زیر مفهوم فوق را به خوبی شرح میدهد:
البته به این نکته توجه داشته باشید که کامپایل واقعی فراتر از سه مرحله نشان داده شده در نمودار فوق است و فرآیندهای مختلفی در پشت صحنه انجام میشود، اما مفهوم اصلی مطابق همان چیزی است که در نمودار مشاهده میکنید. کدهای متنی یک برنامه را کامپایلر بررسی و در اصطلاح تخصصی کامپایل میکند تا کد اجرایی را تولید کند. اگر کد اجرایی بومی برای یک زیرساخت خاص تولید شود، تنها روی آن زیرساخت اجرا میشود. بهطور مثال، اگر کد بومی برای زیرساخت x86 تولید شده باشد، روی زیرساخت آرم اجرا نمیشود، بنابراین برنامههای بومی ویندوز روی لینوکس اجرا نمیشوند و به همین ترتیب. با اینحال، برنامههای کاربردی که برای ماشین مجازی جاوا ساخته میشوند، رویکرد متفاوتی را دنبال میکنند. اجازه دهید در ابتدا به بررسی این موضوع بپردازیم که اساسا ماشین مجازی جاوا چیست که قادر است بایت کدهای جاوا را اجرا کند. لازم به توضیح است که بایتکد مستقل از ماشین است. در درجه اول بایتکد برای اجرای برنامههای نوشته شده توسط جاوا استفاده میشود، اما میتواند برای اجرای برنامههای نوشته شده با زبانهای دیگری نظیر کاتلین، اسکالا، Groovy و غیره نیز استفاده شود. کامپایلری که برنامههای کاربردی را برای ماشین مجازی جاوا ایجاد میکند بایتکدهای جاوایی تولید میکند که برای ماشین مجازی جاوا قابل درک است. با این توصیف باید بگوییم که اگر فردا یک زبان برنامهنویسی جدید به نام XYZ طراحی شود که بایتکدهای جاوا را تولید کند، برنامههای نوشته شده با این زبان توسط ماشین مجازی جاوا قابل درک هستند. نمودار زیر نشان میدهد که چگونه یک برنامه نوشته شده برای ماشین مجازی جاوا کامپایل شده و اجرا میشود:
کامپایلر کاتلین
یک برنامه کاتلین متن سادهای است که میتواند در هر برنامه واژهپردازی نظیر ورد، نوتپد، نوتپدپلاس پلاس و غیره نوشته شود. فایلهای برنامه کاتلین پسوند .kt دارند. کامپایلر کاتلین میتواند یک برنامه کاتلین را به بایت کد جاوا تبدیل کند تا درون ماشین مجازی جاوا اجرا شود. به طور معمول فایلهای بایت کد جاوا پسوند .class دارند. چند فایل .class میتوانند در قالب یک بسته واحد درون یک فایل آرشیو جاوا که فرمت فایلی .jar دارد ذخیرهسازی شوند. یک ماشین مجازی جاوا میتواند فایلهای .class و علاوه بر این فایلهای .jar را اجرا کند. خوشبختانه نیازی نیست در ارتباط با فرآیند میانی تبدیل نگران باشید، زیرا کامپایلر کاتلین میتواند به طور مستقیم به فایلهای .jar تبدیل شوند. ترکیب نحوی که کامپایلر کاتلین برای ساخت فایلهای JAR و کامپایل برنامههای کاتلین استفاده میکند به شرح زیر است:
kotlinc -include-runtime -d
مثال
kotlinc program1.kt -include-runtime -d program1.jar
فرمان بالا فایل اجرایی JAR را برای شما تولید میکند، اما خودش کد اجرایی تولید نمیکند. فایل JAR را میتوان با استفاده از فرمان زیر اجرا کرد:
java -jar
مثاال
java -jar program1.jar
اکنون اجازه دهید این موضوع را بررسی کنیم که چگونه میتوان یک برنامه کاتلین را نوشت و آنرا به فایل JAR تبدیل و اجرا کرد. محیط زمان اجرای مورد علاقه خود را باز کنید، دستور زیر را درون آن تایپ کنید و آنرا با فایل test.kt در مکان مورد نظر ذخیرهسازی کنید:
fun main(){
println(“\n This is a test program.”)
}
نکته: برنامه کاتلین بالا متنی را روی کنسول چاپ میکند. اکنون نیازی نیست درباره دستوراتی که مشاهده میکنید نگران باشید. در فصلهای آینده اطلاعات بیشتری در ارتباط با دستورات تخصصی کاتلین به دست خواهید آورد. در این فصل تمام آن چیزی که باید یاد بگیرید چگونگی کامپایل و اجرای برنامههای کاتلین است.
برای این منظور خط فرمان یا پاورشل در ویندوز یا ترمینال/شل در لینوکس یا مک را باز کنید، به پوشهای که فایل را ذخیرهسازی کردهاید بروید و دستور زیر را اجرا کنید:
kotlinc test.tk -include-runtime -d test.jar
فرمان بالا کامپایلر کاتلین را فراخوانی میکند، فایل test.tk را کامپایل میکند و فایل test.jar ایجاد میکند. فایل JAR را میتوان از طریق فرمان زیر اجرا کرد:
java -jar test.jar
نتیجه فرمان فوق همانند شکل است:
به این مطلب چند ستاره میدهید؟(امتیاز: 4.5 - رای: 2)
- منبع: ماهنامه شبکه
- نویسنده: حمیدرضا تائبی